/**
 * 与服务端后端交互的API
 */

define(['vue'], function(Vue){

    return {
        getMe: function(cb){
            Vue.http.get('/api/user/me').then(function(res){
                if(res.data.ok){
                    cb(res.data.data)
                } else {
                    alert('获取当前登录用户失败')
                }
            })
        },
        login: function(data, cb, errorCb){
            Vue.http.post('/api/user/login', data).then(function(res){
                if(res.data.ok){
                    cb(res.data.data)
                } else {
                    if(errorCb) {
                        errorCb(res.data.error)
                    }
                }
            })
        },
        getUserModuleTree: function(cb){
            setTimeout(function(){
                cb([{
                    id: '1',
                    name: '个人中心',
                    icon: 'fa-user',
                    class: 'text-red',
                    url: '/',
                    active: false,
                    children: [{
                        id: '11',
                        name: '个人资料',
                        url: '/profile',
                        active: false
                    }]
                },{
                    id: '3',
                    name: '信息管理',
                    icon: 'fa-desktop',
                    active: false,
                    children: [{
                        id: '31',
                        name: '商品管理',
                        url: '/good',
                        active: false
                    },{
                        id: '32',
                        name: '部门管理',
                        url: '/supplier',
                        active: false
                    },{
                        id: '33',
                        name: '供应商管理',
                        url: '/supplier',
                        active: false
                    },{
                        id: '34',
                        name: '客户管理',
                        url: '/client',
                        active: false
                    },{
                        id: '35',
                        name: '仓库管理',
                        url: '/depot',
                        active: false
                    }]
                },{
                    id: '2',
                    name: '系统管理',
                    icon: 'fa-desktop',
                    active: false,
                    children: [{
                        id: '21',
                        name: '用户管理',
                        icon: 'fa-group',
                        url: '/user',
                        active: false
                    },{
                        id: '22',
                        name: '角色管理',
                        url: '/role',
                        active: false
                    },{
                        id: '23',
                        name: '权限管理',
                        url: '/permit',
                        active: false
                    }]
                },{
                    id: '5',
                    active: false,
                    name: '采购管理',
                    url: '/buy'
                },{
                    id: '6',
                    active: false,
                    name: '销售管理',
                    url: '/sell'
                }])
            }, 100)
        },
        getUser: function(id, cb, errorCb){
            Vue.http.get('/api/user/' + id).then(function(res){
                if(res.data.ok){
                    cb(res.data.data)
                } else {
                    if(errorCb) {
                        errorCb(res.data.error)
                    }
                }
            })
        },
        getUsers: function(data, cb, errorCb){
            Vue.http.get('/api/user', { params:data }).then(function(res){
                if(res.data.ok){
                    cb(res.data.data, res.data.ts)
                } else {
                    if(errorCb) {
                        errorCb(res.data.error)
                    }
                }
            })
        },
        saveUser: function(user, cb, errorCb){
            Vue.http.post('/api/user', user).then(function(res){
                if(res.data.ok){
                    cb(res.data.data)
                } else {
                    errorCb(res.data.error)
                }
            })
        },
        updateUser: function(id, changed, cb, errorCb) {
            Vue.http.put('/api/user/update/' + id, changed).then(function(res){
                if(res.data.ok){
                    cb(res.data.data)
                } else {
                    errorCb(res.data.error)
                }
            })
        }
    }
})